Telegram Group & Telegram Channel
πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/golang_books/996
Create:
Last Update:

πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ

BY Golang Books




Share with your friend now:
tg-me.com/golang_books/996

View MORE
Open in Telegram


Golang Books Telegram | DID YOU KNOW?

Date: |

Importantly, that investor viewpoint is not new. It cycles in when conditions are right (and vice versa). It also brings the ineffective warnings of an overpriced market with it.Looking toward a good 2022 stock market, there is no apparent reason to expect these issues to change.

NEWS: Telegram supports Facetime video calls NOW!

Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another optionβ€”secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secureβ€”like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.

Golang Books from hk


Telegram Golang Books
FROM USA